/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.guaraba.patrimonio.controller;

import br.com.guaraba.patrimonio.controller.util.JsfUtil;
import br.com.guaraba.patrimonio.facade.InstituicaoFacade;
import br.com.guaraba.patrimonio.modelo.Instituicao;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;
import org.apache.log4j.Logger;

/**
 *
 * @author marcelo
 */
@ManagedBean(name = "instituicaoController")
@SessionScoped
public class InstituicaoController implements Serializable {

    static Logger logger = Logger.getLogger(InstituicaoController.class.getName());
    @ManagedProperty(value = "#{jsfUtil}")
    private JsfUtil jsfUtil;
    private Instituicao instituicao;
    @EJB
    private InstituicaoFacade instituicaoFacade;
    private List<Instituicao> listaInstituicoes;

    public InstituicaoController() {
        this.instituicao = new Instituicao();
        this.listaInstituicoes = new ArrayList();
    }

    public Instituicao getInstituicao() {
        return instituicao;
    }

    public void setInstituicao(Instituicao instituicao) {
        this.instituicao = instituicao;
    }

    public JsfUtil getJsfUtil() {
        return jsfUtil;
    }

    public void setJsfUtil(JsfUtil jsfUtil) {
        this.jsfUtil = jsfUtil;
    }

    public List<Instituicao> getListaInstituicoes() {
        return listaInstituicoes;
    }

    public void setListaInstituicoes(List<Instituicao> listaInstituicoes) {
        this.listaInstituicoes = listaInstituicoes;
    }

    public void NovaInstituicao() {
        this.instituicao = new Instituicao();
    }

    public void Salvar() {
        try {
            this.instituicaoFacade.create(instituicao);
            jsfUtil.addSuccess("Instituicao_salva_com_sucesso");
            this.NovaInstituicao();
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }

    public void BuscarTodasInstituicao() {
        this.listaInstituicoes = this.instituicaoFacade.findAll();
    }

    public void BuscarPorNome(){
        this.listaInstituicoes = this.instituicaoFacade.FindByNome(instituicao.getNome());
    }

    public void EditarInstituicao(){
        try {
            this.instituicaoFacade.edit(instituicao);
            jsfUtil.addSuccess("Instituicao_salva_com_sucesso");
            //this.NovaInstituicao();
        } catch (Exception ex) {
            jsfUtil.addErro("Ocoreu_um_erro");
        }
    }

    public List<SelectItem> getSelectInstuicao() {
        List<Instituicao> lista = instituicaoFacade.findAll();
        List<SelectItem> listItens = new ArrayList<SelectItem>();
        for (Instituicao i : lista) {
            listItens.add(new SelectItem(i.getId(), i.getSigla() + " - " +i.getNome()));
        }
        return listItens;
    }

}
